//
//  HMEmotionPackages.swift
//  01-表情
//
//  Created by mac on 15/10/25.
//  Copyright © 2015年 itheima. All rights reserved.
//

import UIKit

class HMEmoticonPackages: NSObject {
    /// 表情包所在路径
    var id: String?
    /// 表情数组的名称，显示在toolBar 的 item中
    var group_name_cn: String?
    /// 表情数组  使用懒加载，能够保证在使用的时候数组已经存在，可以直接追加数据
    lazy var emoticons = [HMEmoticon]()
    init(dict: [String: AnyObject]){
        super.init()
        // 这里不能使用KVC
        // setValuesForKeysWithDictionary(dict)
        id = dict["id"] as? String
        group_name_cn = dict["group_name_cn"] as? String
        if let array = dict["emoticons"] as? [[String: AnyObject]] {
            // 记录表情个数
            var index = 0
            // 遍历数组
            for var d in array {
                if let png = d["png"] as? String, dir = id {
                    d["png"] = dir + "/" + png
                }
                // HMEmoticon(dict: d):Emoticon模型字典转模型
                emoticons.append(HMEmoticon(dict: d))
                index++
                if index == 20 {
                    emoticons.append(HMEmoticon(isRemoved: true))
                    index = 0
                }
            }
        }
        // 添加空白
        addBlankBtn()
        
    }
    /// 添加空白
    private func addBlankBtn() {
        let count = emoticons.count % 21
        if emoticons.count > 0 && count == 0 {
           return
        }
        for _ in count ..< 20 {
            emoticons.append(HMEmoticon(isBlank: true))
        }
        // 末尾追加删除
        emoticons.append(HMEmoticon(isRemoved: true))
    }
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {}
    override var description: String{
        let keys = ["id","group_name_cn","emoticons"]
        return dictionaryWithValuesForKeys(keys).description
    }
}
